﻿using System;
using System.Data;
using System.Windows.Forms;
using SiGeCoPre.Presupuesto_BL;
using SiGeCoPre.Presupuesto_Factory;
using SiGeCoPre.Presupuesto_Util;

namespace SiGeCoPre.Presupuesto_ViewGeneral
{
    /// <summary>
    /// Formulario para elegir presupuestos de mantenimiento
    /// </summary>
    public partial class frmPresupuestosMan : Form
    {
        static string codigo = "";
        BLPresupuestoMantenimiento createPreMan = BLFactoryPresupuesto.createPresupuestoMantenimiento();
        
        public frmPresupuestosMan()
        {
            InitializeComponent();
        }

        private void frmPresupuestosMan_Load(object sender, EventArgs e)
        {
            try
            {
                DataTable preMan = createPreMan.getAllPresupuestoMantenimiento();
                if (null != preMan)
                {
                    string codigo = "";

                    foreach (DataRow dr in preMan.Rows)
                    {
                        if (!codigo.Equals(dr["codigo"].ToString()))
                        {
                            clbPreMan.Items.Add(dr["codigo"].ToString());
                            codigo = dr["codigo"].ToString();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Texto.escribirLog(ex.Message);
            }
               
        }

        private void btnAsignar_Click(object sender, EventArgs e)
        {
            if (verificar())
            {
                codigo = clbPreMan.CheckedItems[0].ToString();
                this.Close();
                this.Dispose();
            }
        }

        /// <summary>
        /// Intercambia el codigo del presupuesto
        /// </summary>
        /// <returns>Devuelve el codigo del presupuesto seleccionado</returns>
        public static string pasarCodigo()
        {
            return codigo;
        }

        private bool verificar()
        {
            bool verificado = false;

            if (clbPreMan.CheckedItems.Count != 1)
            {
                errorProvider1.SetError(clbPreMan, "Seleccione un sólo Presupuesto");
            }
            else
            {
                errorProvider1.SetError(clbPreMan, String.Empty);
                verificado = true;
            }

            return verificado;
        }
    }
}
